Rachid Guerraoui est professeur d’informatique à l’Ecole polytechnique fédérale de Lausanne (EPFL) et membre du comité de pilotage du Collège of Computing à l’UM6P. Après un doctorat à Paris-Saclay, il a été chercheur aux laboratoires Hewlett Packard à la Silicon Valley et professeur invité au MIT et au Collège de France
Dans le célébrissime film La Grande Vadrouille, Bourvil dérobe un uniforme de colonel allemand au hammam de la mosquée de Paris pour aller récupérer un pilote anglais caché à l’opéra, pendant une représentation de Berlioz dirigée par De Funès devant l’état-major allemand. Grâce à son uniforme, Bourvil parvient jusque dans les coulisses de l’opéra sans être inquiété par les soldats allemands. La réalité dépasse parfois la fiction.
En avril dernier, des malfrats dévalisèrent des habitants d’une commune française avec un mode opératoire sophistiqué. L’un d’eux se faisait passer pour un plombier qui expliquait aux habitants qu’il devait vérifier leur logement à cause de fuites d’eau dans le quartier. Après que le plombier soit parti, deux de ses comparses, habillés en policiers, arrivaient en alertant leurs victimes qu’un faux plombier sévissait dans la région, et qu’ils devaient vérifier si rien n’avait été volé. Les habitants leur ouvraient gentiment leurs coffres.
Des «policiers» bien particuliers
Le monde numérique nous révèle parfois des scénarios encore plus extraordinaires. À l’aube du vendredi 19 juillet 2024, des «policiers», frais et aguerris, décidèrent de relever leurs anciens confrères dans le but de mieux protéger les systèmes informatiques du monde entier: les aéroports, les banques, les hôpitaux, les chaînes de télévision, les administrations, ainsi que de nombreuses entreprises. Le but des «policiers» était de détecter de potentiels intrus qui essayeraient de se connecter à ces systèmes afin de les bloquer, et de rançonner leurs propriétaires. Sauf que les nouveaux «policiers», une fois introduits au cœur des systèmes informatiques, ont eux-mêmes bloqué leur fonctionnement au lieu d’assurer leur pérennité. Près de dix millions d’ordinateurs s’arrêtèrent de fonctionner. Et le monde moderne avec.
Avant de suggérer quelques leçons à tirer de cette panne informatique sans précédent, plusieurs questions préalables se posent: Qui sont ces «policiers»? Qui les a envoyés? Pourquoi ont-ils remplacé les anciens? Comment ont-ils pu pénétrer au cœur des systèmes informatiques? Comment ont-ils pu bloquer des millions de machines sans que rien ne puisse les arrêter?
Bouts de programmes
Ces «policiers» sont des «bouts de programmes informatiques» envoyés à travers des messages Internet à des systèmes Windows de Microsoft. Grâce à sa solution Office, incluant entre autres les logiciels Word, Excel, PowerPoint, Outlook, Skype et Teams, Microsoft est devenu leader mondial de la bureautique, équipant plus d’un milliard d’utilisateurs. Son système d’exploitation Windows fait tourner la majorité des ordinateurs de la planète. Les «bouts de programmes» en question avaient pour objectif de se greffer sur le système Windows afin de sécuriser l’ordinateur qu’il fait tourner.
Des messages contenant ces «bouts de programmes» sont envoyés automatiquement plusieurs fois par jour par le logiciel Falcon Sensor, tournant sur le cloud pour le compte de la société CrowdStrike. Cette société est un leader mondial dans la cybersécurité et en particulier dans la protection des ordinateurs offrant un service à travers Internet. Son produit Falcon Sensor est l’outil informatique de prédilection pour analyser, prévenir et contrer les attaques informatiques. Microsoft a décidé d’en faire un agent principal de protection de son système Windows.
Quand Windows a préféré se faire harakiri
La société CrowdStrike se targue de faire de la surveillance, de la prévention et de l’analyse des attaques informatiques en temps réel, de manière intelligente et automatique. Son logiciel Falcon Sensor surveille les activités sur Internet et en particulier les tentatives d’accès aux systèmes informatiques qu’il est censé protéger, en l’occurrence Windows. Il conçoit de manière agile de nouveaux mécanismes de défense adaptés aux nouvelles attaques, et les envoie sous forme de «bouts de programmes» qui s’installent dans le système Windows sans intervention humaine. Ces mécanismes de défense ont tous les droits (au sens informatique du terme) et revêtent des «uniformes» (signatures) explicitant cela. Ils démarrent dans le système Windows avant toutes les applications.
Il se trouve que le mécanisme de défense qui est incriminé pour la panne du 19 juillet dernier était défaillant. Il n’avait pas été explicitement programmé pour bloquer Windows, et c’est pour cela que les responsables de CrowdStrike répètent qu’ils n’ont pas subi une attaque informatique, contredisant des thèses conspirationnistes. Le mécanisme de défense défaillant a mis à jour un fichier de configuration particulier (le «channel file 291») avec une instruction qui a bloqué tout le système. Une «erreur logique» (genre 2 + 2 = 3) aurait causé une «erreur physique» (accès à une zone mémoire vide). Windows a détecté cette «erreur physique» et, ne possédant aucune stratégie pour la rectifier, a lancé la procédure de blocage (Blue Screen Of Death) sur plus de 8 millions d’ordinateurs. Autrement dit, plutôt que de générer d’autres erreurs qui auraient pu effacer des bases de données ou afficher des informations incohérentes, Windows a préféré se faire harakiri.
Cela aurait pu être bien pire!
Le mécanisme de défense incriminé a été envoyé (de manière automatique par un ordinateur sur un cloud) au même moment à des millions d’ordinateurs. Le fait que ce mécanisme avait tous les droits a eu pour effet qu’aucun autre logiciel n’a pu l’empêcher de pénétrer au cœur de Windows, et comme il s’exécute en premier au démarrage du système, il est impossible à préempter. C’est un peu comme si on envoyait des agents sécuriser une zone avant une manifestation et qu’ils en bloquaient l’accès à tout le monde, y compris aux organisateurs de la manifestation qui les ont embauchés et qui viendraient leur expliquer qu’ils faisaient de l’excès de zèle. Les organisateurs de la manifestation n’auraient alors d’autre choix que d’annuler pour éviter des rixes. On évalue le coût de la panne à plus d’un milliard de dollars. Cela aurait pu être bien pire. La panne n’a touché que 1% des ordinateurs équipés de Windows. Certes, de nombreux passagers ont dû dormir à l’aéroport et de nombreuses interventions médicales ont dû être reportées, mais personne n’est mort.
Souveraineté numérique: Une idée illusoire
La notion de souveraineté numérique est parfois suggérée comme le moyen de se prémunir de mésaventures à la CrowdStrike. Cette idée est assez illusoire. Les USA ont été parmi les plus touchés par la panne et s’il y a un pays qui dépend le moins des autres dans le domaine du numérique, et que l’on peut donc qualifier de pays le plus souverain du monde, c’est bien celui-là. On peut lire ici ou là que la Chine et la Russie s’en sont bien sorties. Cela est bien entendu le cas, comme pour tous les pays qui n’utilisent pas Windows et Crowdstrike. Mais les mêmes causes conduiraient aux mêmes effets chez eux aussi.
Contraindre les sociétés informatiques à ouvrir leurs logiciels
Pour réduire la probabilité qu’une telle panne ne se reproduise, il faudrait surtout (a) considérer un logiciel comme un tout, en vérifiant son algorithme et en testant sa mise en œuvre de bout en bout, (b) ne pas faire reposer une infrastructure sur un seul type de logiciel, et (c) privilégier les architectures transparentes et décentralisées. Bien entendu, appliquer ces règles n’est pas trivial et c’est peut-être là où le législateur pourrait intervenir pour contraindre les sociétés informatiques à ouvrir leurs logiciels et à offrir des interfaces standards qui permettraient de diversifier ses fournisseurs sans trop de difficulté. L’infrastructure DNS (le répertoire téléphonique d’Internet), dont la résilience est basée sur le fait d’avoir différentes implémentations sur divers types de matériels et systèmes d’exploitation, montre que cet objectif est réalisable.
Quelles leçons tirer?
■ Tout d’abord, le numérique est un tout
On ne peut séparer les aspects données, IA, réseau, système d’exploitation, fiabilité, sécurité, etc. Ces aspects sont intimement liés et doivent être considérés de manière globale. L’idée que l’on peut former des «security experts», des «data scientists» ou des «AI engineers» qui ignoreraient tout de l’algorithmique classique et des systèmes d’exploitation est pour le moins fallacieuse. Un logiciel doit être conçu, mis en œuvre et vérifié de bout en bout en utilisant les techniques classiques de génie logiciel. Le fait de rajouter a posteriori un bout de programme à un logiciel ayant été certifié, sans revérifier la fiabilité du tout, est une faute grave contre laquelle on met en garde les étudiants de n’importe quel programme de base en informatique.
■ La probabilité d’erreur n’est jamais nulle
Quand bien même on prouve, on teste et on vérifie un programme, la probabilité d’erreur n’est jamais nulle. On ne doit donc jamais mettre tous ses œufs dans le même panier. Des millions de machines contrôlant des infrastructures importantes dépendaient toutes du même système d’exploitation, qui lui-même dépendait du même logiciel de sécurité, qui lui-même dépendait du même petit bout de programme, qui avait été généré automatiquement à partir d’informations glanées sur Internet. Ce bout de programme avait plus de droits que tous les autres et sa défaillance a nécessité une intervention humaine la veille d’un week-end de départ en vacances. Il faut espérer que les aéroports, les banques, les hôpitaux, les administrations, et les entreprises ne feront plus dépendre leurs infrastructures informatiques uniquement de Microsoft, et leur sécurité uniquement de Crowdstrike.
■ Privilégier les architectures ouvertes et décentralisées
Enfin, il semble plus urgent que jamais de privilégier les architectures ouvertes et décentralisées. La plateforme répartie Blockchain, sous-jacente à la cryptomonnaie bitcoin, est l’une des infrastructures informatiques les plus attaquées au monde. La valeur du Bitcoin attire de nombreuses convoitises et de nombreuses cyber-attaques ciblent quotidiennement cette infrastructure. Et pourtant, depuis 2009, cette plateforme fonctionne correctement sans accroc majeur. Elle connecte des millions d’ordinateurs et s’exécute aux quatre coins du monde. Au-delà des utilisations parfois douteuses du Bitcoin, il est important de souligner la robustesse de la plateforme qui peut être utilisée pour d’autres applications. Le code Blockchain est accessible à tous les programmeurs qui peuvent le consulter et le modifier à leur guise. Mais ce code ne sera admis sur les autres ordinateurs que s’il est accepté par d’autres programmeurs, contrairement au code de Falcon Sensor qui a été initié de manière non transparente sur un seul ordinateur, puis propagé à des millions d’ordinateurs, sans aucune procédure de contrôle.